# 9. 大整数位序反转

# 题目内容

小华是一名嵌入式开发工程师,在处理芯片寄存器数据时,经常需要对超多位数据进行位翻转操作。寄存器中的数据可能是几百位甚至更长。

给定一个十进制大整数(最多 100 位),请将其二进制表示中的所有位顺序全部翻转(最低位变成最高位,次低位变成次高位,以此类推),然后输出翻转后的十进制表示。

# 输入描述

一个十进制大整数(字符串形式,范围:0 ~ 10^100 - 1,输入不带前导零,除非为 0)。

# 输出描述

翻转后的十进制整数(字符串形式,不能有前导零,除非输出为 0)。

# 样例

# 样例 1

输入

1
1

输出

1
1

说明: 1 的二进制为 1,翻转后仍为 1,对应十进制 1。

# 样例 2

输入

2
1

输出

1
1

说明: 2 的二进制为 10,翻转为 01(即 1),对应十进制 1。

# 样例 3

输入

4
1

输出

1
1

说明: 4 的二进制为 100,翻转为 001(即 1),对应十进制 1。

# 代码

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on('line', (n) => {
    const bin = BigInt(n).toString(2).split('').reverse().join('');
    const ans = BigInt('0b' + bin).toString();
    console.log(ans);
})
1
2
3
4
5
6
7
8
9
10
11
Last Updated: 9/28/2026, 12:04:08 PM